#ifndef GTD_TEST_HPP
#define GTD_TEST_HPP
#include <gtd.hpp>

class GtdTest
{
public:
    GtdTest(const std::vector<std::string>& args);
    ~GtdTest();

    void run();

private:
    void update();
    void render(bool newFrame);
    
    bool isRunning;

    std::auto_ptr<gtd::VideoSource> videoSource;
    std::vector<gtd::FeaturePair> pairs;

    // graphics
    bool graphics;
    bool verticalLayout;
    SDL_Rect trackerRegion;
    SDL_Rect meshgenRegion;
    cudaGraphicsResource* trackerResource;
    GLuint trackerTexture;

    std::auto_ptr<gtd::FeatureTracker> tracker;
    std::auto_ptr<gtd::PointCloud> cloud;
    std::auto_ptr<gtd::MeshGenerator> meshgen;
};

#endif
